package com.ann.tes;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义注解
 * <p>
 * 成员类型是受限的，合法的类型包括原始类型及 String,Class,Annotation,Enumeration
 * <p>
 * 如果注解只有一个成员，则成员必须取名为value()，在使用时可以忽略成员名和赋值号(=)
 * <p>
 * 注解类可以没有成员，没有成员的注解称为标识注解
 * 
 * @author laigl 2017年7月1日
 *
 */
@Target({ ElementType.METHOD, ElementType.TYPE }) // 注解作用域
@Retention(RetentionPolicy.RUNTIME) // 生命周期(源码、编译时和运行时注解)
@Inherited // 允许子类继承
@Documented // 生成javadoc时会包含注解信息
public @interface Description {

	String value();
	// String desc();// 成员以无参数无异常方式声明

	// String author();

	// int age() default 18;// 可以用default为成员指定一个默认值
}
